English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Mappa C++ Operatore []La funzione è utilizzata per utilizzare la chiave dataChiave valoreAccedere agli elementi della mappa.
È simile aat()Funzione. La differenza unica tra di loro è che, se la chiave acceduta non esiste nella mappa, viene lanciata un'eccezione; d'altro canto, se la chiave non esiste nella mappa, alloraoperator[]Inserisci la chiave nella map.
Considera il valore di chiavek, sintassi:
mapped_type& operator[](const key_type& k); // Prima di C++ 11 mapped_type& operator[](const key_type& k); // A partire da C++ 11 mapped_type& operator[](key_type&& k); // A partire da C++ 11
k: Chiave del valore dell'elemento map da accedere.
Utilizza i valori di chiave per restituire un riferimento al valore dell'elemento map.
Guardiamo un esempio semplice di accesso agli elementi.
#include <iostream> #include <map> using namespace std; int main() { map<char, int> m = { { 'a', 1 }, { 'b', 2 }, { 'c', 3 }, { 'd', 4 }, { 'e', 5 }, }; cout << "La map contiene i seguenti elementi" << endl; cout << "m['a'] = " << m['a'] << endl; cout << "m['b'] = " << m['b'] << endl; cout << "m['c'] = " << m['c'] << endl; cout << "m['d'] = " << m['d'] << endl; cout << "m['e'] = " << m['e'] << endl; return 0; }
Output:
La map contiene i seguenti elementi m['a'] = 1 m['b'] = 2 m['c'] = 3 m['d'] = 4 m['e'] = 5
In questo caso, la funzione operator [] viene utilizzata per accedere agli elementi della map.
Guardiamo un esempio semplice che utilizza i loro valori di chiave per aggiungere elementi.
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<int,string> mymap = { { 101, "" }, { 102, "" }, { 103, "" } }; mymap[101] = "w3codebox"; mymap[102] = "."; mymap[103] = "com"; // Stampa il valore associato alla chiave 101, ovvero w3codebox cout << mymap[101]; // Stampa il valore associato alla chiave 102, ovvero . cout << mymap[102]; // Stampa il valore associato alla chiave 103, ovvero com cout << mymap[103]; return 0; }
Output:
oldtoolbag.com
Nel esempio sopra, operator [] è utilizzato per aggiungere elementi utilizzando la chiave associata dopo l'inizializzazione.
Ecco un esempio semplice per aggiungere elementi utilizzando la chiave associata dopo l'inizializzazione.
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<int,string> mymap = { { 100, "Nikita"}, { 200, "Deep" }}; { 300, "Priya" }, { 400, "Suman" }, { 500, "Aman" }}; cout << "L'elemento è:" << endl; for (auto& x: mymap) { cout << x.first <<": " << x.second << '\n'; } mymap[100] = "Nidhi"; //Modifica il valore associato alla chiave 100 a Nidhi mymap[300] = "Pinku"; //Modifica il valore associato alla chiave 300 a Pinku mymap[500] = "Arohi"; //Modifica il valore associato alla chiave 500 a Arohi cout << "\nL'elemento modificato è:" << endl; for (auto& x: mymap) { cout << x.first <<": " << x.second << '\n'; } return 0; }
Output:
L'elemento è: 100: Nikita 200: Deep 300: Priya 400: Suman 500: Aman L'elemento modificato è: 100: Nidhi 200: Deep 300: Pinku 400: Suman 500: Arohi
Nel esempio sopra, la funzione operator [] è utilizzata per modificare il valore associato alla chiave.
Ecco un esempio semplice per distinguere operator [] e at().
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<char,string> mp = { { 'a',"Java"}, { 'b', "C++" }, { 'c', "Python" }}; cout << endl << mp['a']; cout << endl << mp['b']; cout << endl << mp['c']; mp['d'] = "SQL"; cout << endl << mp['d']; try { mp.at('z'); //Poiché la mappa non ha una chiave con valore 'z', viene lanciata un'eccezione catch(const out_of_range &e) { cout << endl << "\nEccezione out_of_range " << e.what(); } return 0; }
Output:
Java C++ Python SQL Eccezione out_of_range map::at
Nel esempio sopra, quando utilizziamo la funzione at(), lancia l'eccezione out_of_range perché la mappa non ha una chiave con valore z, e quando utilizziamo operator [] per aggiungere un elemento con chiave valore 'd', perché non c'è una chiave con valore 'd' nella mappa, inserisce una coppia di chiave valore con chiave 'd' e valore 'SQL'.